package com.xbongbong.saas.model;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.saas.domain.entity.CustomerStatementSnapshotEntity;

import java.util.List;
import java.util.Map;


/**
 * @author an
 */
public interface CustomerStatementSnapshotModel extends IModel<CustomerStatementSnapshotEntity> {
   @Override
   Integer insert(CustomerStatementSnapshotEntity entity) throws XbbException;

   void insertBatch(List<CustomerStatementSnapshotEntity> list) throws XbbException;

   @Override
   List<CustomerStatementSnapshotEntity> findEntitys(Map<String, Object> param);

   @Override
   Integer getEntitysCount(Map<String, Object> param);

   @Override
   Integer update(CustomerStatementSnapshotEntity entity) throws XbbException;

   /**
    * 批量更新
    * @param list
    * @param corpid
    * @return java.lang.Integer
    * @author zcp
    * @since v1.0
    * @version v1.0
    */
   Integer updateBatchAbnormal(List<CustomerStatementSnapshotEntity> list, String corpid) throws XbbException;

   CustomerStatementSnapshotEntity getByKey(Long key, String corpid);

   Integer deleteBatch(List<Long> snapshotIds, String corpid, List<CustomerStatementSnapshotEntity> list) throws XbbException;

   /**
    * 物理删除对账单相关的快照数据
    * @param snapshotIds
    * @param corpid
    * @throws XbbException
    */
  void physicalDeleteBatch(List<Long> snapshotIds, String corpid) throws XbbException;
}
